package com.ajk.server.service;
import java.util.List;

import com.ajk.server.model.HospitalDict;
import com.ajk.server.model.query.HospitalDictQuery;
import com.ajk.server.model.response.DepartmentDictRes;

/**
 * 医院  <br>
 * dict_hospital <br>
 * v1.0 2016-05-01
 */
 public interface HospitalDictService {
	
	/**
 	*根据ID删除 医院
 	*/
 	public Integer deleteHospitalDictById(Integer id);
 	
 	/**
 	*新增 医院
 	*/
 	public Integer batchInsertHospitalDict(List<? extends HospitalDict> hospitalDicts);
 	
 	/**
 	*新增 医院
 	*/
 	public Integer insertHospitalDict(HospitalDict domain);
 
 	
 	/**
 	*更新 医院
 	*/
 	public Integer updateHospitalDict(HospitalDict domain);
 	
 	/**
 	*根据ID查询 医院
 	*/
 	public HospitalDict findHospitalDictById(Integer id);

	/**
 	*通过query 查询 医院
 	*/
	public List<HospitalDict> findHospitalDictByQuery(HospitalDictQuery query);	
	
	/**
 	*通过query count总条数
 	*/
 	public Integer countHospitalDictByQuery(HospitalDictQuery query);
 	
 	/**
 	* 通过ids查询
 	*/
 	public List<HospitalDict> findHospitalDictByIds(List<Integer> ids);
 	
 	/**
 	*根据name查询 医院
 	*/
	public HospitalDict findByName(String name);
	
	/**
 	*获取所有字典 医院
 	*/
	public List<HospitalDict> findAll();
	
	/**
	 * 
	 */
	
	public void syncInRedis(boolean hard);
	
	public void syncSingletonRedis(Integer hospitalId);
	
	public List<HospitalDict> findByIdsInCache(List<Integer> ids);
	
	public HospitalDict findByIdInCache(Integer id);
	
	public List<HospitalDict> findByRegionIdsInCache(List<Integer> regionIds);
	
	public List<HospitalDict> nearbyHospital(HospitalDict hospitalDict);
	
	/**
 	 * 根据医院ID查询科室及科室下的医生列表
 	 * @param hospitalId
 	 * @return
 	 */
 	public List<DepartmentDictRes> findDoctorListForHospitalId(Integer hospitalId);
	
}	